Context aware application manager

ABSTRACT

A method of managing a display of applications on a computing device can include identifying a plurality of contexts in which the computing device is used, each context being associated with (i) one or more signals and (ii) a plurality of applications. The method can also include detecting at least a subset of the signals during usage of the computing device and determining, based on the detected signals, that the computing devices is being used within a first context. The method can further include ranking, based on usage of the computing device, the applications associated with the first context. The method can still further include displaying, based on the ranking, representations of a first subset of the applications associated with the first context on a display of the computing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.application Ser. No. 14/499,083, filed on Sep. 26, 2014, titled “CONTEXTAWARE APPLICATION MANAGER”, which claims the benefit of U.S. ProvisionalApplication No. 61/883,134, titled “OVERLAY USER INTERFACE”, filed onSep. 26, 2013, and U.S. Provisional Application No. 61/883,128, titled“RANKING OF APPLICATIONS”, filed on Sep. 26, 2013, the disclosures ofwhich are incorporated by reference herein in their entirety. Thisapplication is also related to U.S. application Ser. No. 14/499,077,titled “OVERLAY USER INTERFACE”, filed on Sep. 26, 2014, the disclosureof which is incorporated by reference.

TECHNICAL FIELD

This disclosure generally relates to the ranking and display ofapplications on a computing device.

BACKGROUND

The use of computing devices has greatly increased in recent years.Computing devices such as tablet computers, smart phones, cellularphones, and netbook computers, are now commonplace throughout society.Computing devices also exist with other devices, such as, for example,cars, planes, household appliances, and thermostats. With this increasein the number of computing devices, the number of applications has alsogreatly increased. Software developers have created new applications tomeet the varying needs and requirements of users. For example, mapapplications allow users to navigate from one location to another, gameapplication allow users to play video games on their computing device,social networking applications allow users to connect to a socialnetwork to post/share content, a calorie tracking application may allowusers to track the amount of calories are in the food the users eat,etc.

On a computing device (e.g., a tablet, a smart phone, a laptop computera PDA, etc.) applications can be represented by a visual icon that isdisplayed by the computing device. Selecting the icon (e.g., by tappingor double tapping the icon) can launch the application for use by theuser. A user may often have so many applications installed on acomputing device that the icons representing the applications do not fiton a single page of the display of the computing device.

Although users have a multitude of applications, most users do not spenda lot of time or effort organizing the icons that represent theirapplications. As a user installs different applications onto a computingdevice, the computing device may automatically arrange icons for theapplications in the order in which they were downloaded and/orinstalled. Because users may not organize their applications, it may behard for users to access applications easily and/or quickly when theyneed to. This may be frustrating to users, who often open differentapplications tens, or hundreds, of times per day. In addition, switchingbetween different applications tens, or hundreds, of times per day, andgoing through the process of locating an application, launching theapplication, closing the application, locating another application,launching the other application, etc. may be irritating to a user,especially when the user may interact with an application for only a fewseconds before moving on to another application.

SUMMARY

In general, this disclosure pertains to systems and methods of rankingapplications on a computing device such as a smartphone, a mobile phone,a cellular phone, a tablet computer, a touchscreen device, a personaldigital assistant (PDA), etc. The application ranking system may analyzewhich applications the user opens in various different contexts (e.g.,various times of the day, various locations, various activities, etc.),and may allow the user to more easily access these applications via auser interface (for example via the lock screen of the computingdevice).

As the user continues to use the computing device, the app rankingsystem may analyze the applications that are accessed (e.g., used) bythe user and the context in which the user uses the applications (e.g.,the time of day, the location, etc.). The app ranking system maycontinually identify applications that a user is likely to access duringdifferent contexts and may present these applications to the user foreasier and faster access.

According to one general aspect, a method of managing a display ofapplications on a computing device can include identifying a pluralityof contexts in which the computing device is used, each context beingassociated with (i) one or more signals and (ii) a plurality ofapplications. The method can also include detecting at least a subset ofthe signals during usage of the computing device and determining, basedon the detected signals, that the computing devices is being used withina first context. The method can further include ranking, based on usageof the computing device, the applications associated with the firstcontext and displaying, based on the ranking, representations of a firstsubset of the applications associated with the first context on adisplay of the computing device.

Implementations can include one or more of the following features. Forinstance, the method can include determining, based on the detectedsignals, that that the computing device is being used within a secondcontext. The method can include ranking, based on usage of the computingdevice, the applications associated with the second context, where theranking is based at least on the correlation between the use of theapplication within the second context. The method can includedisplaying, based on the ranking, representations of a second subset ofthe applications associated with the second context on the display ofthe computing device.

The plurality of signals can include a determined location of thecomputing device. The plurality of signals can include a time at whichthe computing device is used. The plurality of signals can include anindication of another device to which the computing device isfunctionally connected.

The method can include correlating usage of applications on thecomputing device with individual signals. Identifying the plurality ofcontexts can be based at least the correlation. Identifying theplurality of contexts can include identifying a number of contexts andwherein the number of contexts is determined based at least in part oninput from a user about the number of contexts to identify.

The method can include ranking an application that has not been usedpreviously on the computing device. The ranking can be based on arelevance, when the computing device is being used within the firstcontext, of the application that has not been used previously on thecomputing device. Based on the ranking, the application can beassociated with the first context. The display of the representations ofthe first subset of the applications can include a representation of theapplication that has not been used previously.

The method can include changing the rankings of the applications basedon how long the computing device has been used within the first context.The ranking of the applications can remain fixed while the computingdevice is used within the first context. Displaying the representationsof the first subset of the applications can include displaying, inassociation with a representation of one of the displayed applications,a notification of a number of new events associated with theapplication. The method can include determining a threshold for newevents to be associated with the application, wherein the determinationof the threshold is based on the determination that the computing deviceis being used the first context.

The method can include, based on the determination that the computingdevice is being used within the first context, selecting a contact of auser of the computing device for association with a displayedrepresentation of an application. The method can include displaying arepresentation of the contact in association with the representation ofthe application. The method can include, based on the determination thatthe computing device is being used within the first context,pre-populating an input to the application whose representation isdisplayed in association with the representation of the contact.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a system for a context-based ranking ofapplications on a computing device.

FIGS. 2A, 2B, and 2C are schematic diagrams illustrating graphical userinterfaces (UIs) in which application icons are displayed on a device,in which the displayed icons are selected based on the context of thedevice.

FIGS. 3A, 3B, and 3C are schematic diagrams illustrating graphical userinterfaces (UIs) in which icons are displayed on a device, in which thedisplayed icons are selected based on the context of the device.

FIG. 4 is a flow chart illustrating a method of ranking applications.

FIG. 5 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described here.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Techniques are disclosed herein for customizing display of applicationsin a computing device. One or more different contexts corresponding tosignals of a computing device can be defined or identified. In one ormore embodiments, a context is a data structure corresponding to (i) oneor more signals received or identified by the device and (ii) one ormore applications. For example, it may be determined that the computingdevice is used in a work context, in a home context, in a “driving”context, or in other contexts. The identification of a context can bebased at least in part on signals depicting how a user of the computingdevice utilizes applications on the computing device. For example, useof a first group of applications at regular time intervals, inparticular locations, or when the computing device is in a particularstate (e.g., connected to headphones, in motion, moving more than 10mph, etc.) that is different from other groups of applications that areused in other times, locations, or in different states the device mayindicate a particular context for the device.

A “current context” of a computing device can refer to a contextselected based on a current state of the device. The current context maybe selected by identifying one or more signals of the device that matchsignals of the context. By analyzing the current context of thecomputing device, an application ranking system may be able to identifyapplications that a user is likely to use during a current context. Forexample, when the computing device is determined to be used in aparticular context, applications loaded on the computing device can beranked for that particular context, where the ranking is based on thevalue or relevance to a user of the computing device within theparticular context. Then, a subset of applications loaded on thecomputing device can be displayed to the user on a display page of thecomputing device (e.g., a “home page” or a “lock screen” or of an“overlay user interface page” of the computing device). Thus,applications that are especially relevant to a user can be surfaced tothe user when the device is determined to be in a particular context. Inthis manner, a user can spend less time searching for, or navigating to,applications that the user may want to use within particular contexts.

The techniques described herein allow a computing device to presentapplications, or application icons, to the user in a dynamic fashiondepending on the context of the computing device. Different applicationsmay be presented to the user based on the context of the computingdevice. The applications may be ranked and displayed based on thelikelihood of the user wanting to use them/access them quickly, giventhe context of the computing device (e.g., based on specificcircumstances, environment, and/or state inputs). These rankings for acontext can be periodically regenerated, so display of applications onthe computing device is dynamic and so that the computing device may“learn” from how the user uses the computing device. This may allow thecomputing device to more accurately personalize the application list tothe user. Users may also access applications without needing to manuallycategorize or classify applications for different purposes or contexts.Application may be ranked differently for each user and/or set ofcontext(s). For example, one user's “work applications,” which aredisplayed when the user in a work context, may include social networkapplications or games, whereas another user's work applications mayinclude email applications.

FIG. 1 is a schematic diagram of a system 100 for a context-basedranking of applications on a computing device, which can be a mobilecomputing device (e.g., a smart phone, a PDA, a tablet, a wearabledevice, such as, a wrist mounted device, or a laptop computer). System100 can include one or more computing devices 102, 104, one or moreserver computers 160, 161 that are connected to the client device(s)through one or more networks 150. The client device 102 can include oneor more processors (e.g., including a central processing unit, agraphics processor, etc.), a volatile memory 108, and nonvolatile memory110. In various implementations, the volatile memory 108 may store, forexample, instructions that are executed by the processor(s) 106, and thenonvolatile memory 110 may store, for example, various user data,instructions for executing an operating system, applications, etc.

The computing device 102 can include an operating system 112 and aplurality of applications 114, which can be executed by the computingdevice 102 (e.g., by the processor 106 executing one or moreinstructions stored in memory 108 that correspond to the application)and which may communicate with the operating system (e.g., through oneor more application programming interfaces (APIs)). Execution of theapplications 114 can provide various functionality to a user of thecomputing device 102. In a few examples, an email application mayprovide access to the user's email account and email messages associatedwith the account. A browser application may provide a web browser to auser, so that the user may access content that can be loaded into, anddisplayed by, the browser application. A navigation application canprovide access to maps, can provide routing instructions for navigatingfrom one place to another place, and can provide traffic informationassociated with the routing instructions, etc. A weather application canprovide information about current weather conditions and weatherforecasts for various locations. A social network application canprovide content to the user from contacts and sources that the user haschosen to be associated with within the social network application. Amusic application can provide access to songs and other audio files thatthe user has associated with his or her account with the musicapplication. A camera application can provide access to use of a camera116 within the computing device 102. A video streaming application canprovide access to video content (e.g., movies, television shows, etc.)that is available from a provider of the video streaming application toa user of the computing device 102. Applications that provide a richvariety of other functionalities and information to the user also can beprovided.

The computing device 102 includes a display 118 (e.g., a touchscreendisplay) that can display an application 114 that is being executed bythe device. More than one application can be executed at a time.However, in some implementations (e.g., in the case of a smart phone),the size of the display is better suited for a single executingapplication to be displayed at a time. The executing application that isdisplayed on the display 118 can be referred to as a “front-facing”application.

The computing device 102 can include internal speakers 117 that canprovide an audio output from the device. The computing device 102 alsocan include a port (not shown) that can be used to connect the computingdevice to external devices, e.g., speakers that may provide an audiooutput when connected to the device 102.

The computing device also includes a clock 120 that determines a timeand date, an accelerometer 122 that determines an acceleration of thecomputing device through space, and a GPS transceiver 124 thatcommunicates with a global positioning system to determine a location ofthe computing device 102. The computing device 102 also includes variousnetwork interface circuitry, such as for example, a mobile networkinterface 126 through which the computing device can communicate with acellular network, a Wi-Fi network interface 128 with which the computingdevice can communicate with a Wi-Fi base station 182, and a Bluetoothnetwork interface 130 with which the computing device can communicatewith other Bluetooth devices. The computing device 102 may include othersensors (not shown), such as, for example, an ambient light sensor, amicrophone that detects sound in the environment of the device, atemperature sensor, etc.

An application management engine 132 can monitor the use of differentapplications 114 on the computing device 102 and can correlate the useof the applications with one or more signals associated with, oravailable to, the computing device 102 build up one or more models ofuser behavior associated with use of the applications 114. Signals caninclude data generated by, detected by, and/or provided to the device.Signals can depict operation of the device, how the device is used, or astate of the device. For example, use of an application 114 can becorrelated with a time signal from the clock 120 (e.g., a time of day,day of week, holiday versus workday). The application management engine132 can monitor the use of an application and can correlate the use ofthe application with the computing device 102 being in a particularlocation (e.g. as determined by the GPS 124, location informationavailable through the mobile network interface 126 which may includeinformation about a location of a cellular tower 180 with which themobile network interface is communicating, location information about aWi-Fi base station 182 with which the Wi-Fi network interface 128communicates, etc.).

In another example, the application management engine 132 can correlateuse of an application 114 with the computing device 102 being in aparticular state. Examples of states of the computing device 102 caninclude, for example, the state of being connected to an externaldevice, states associated with motion of the computing device 102, etc.For example, a state of the computing device 102 can be determined basedon the computing device being connected to an external headphone orspeaker, e.g., through a cord that is plugged into the computing deviceor through pairing with a wireless speaker system. In another example, astate of the computing device can be determined based on the computingdevice being paired (e.g., over a Bluetooth connection) with an audiosystem of a car, which may indicate that a user of the computing deviceis driving in a car. In another example, the state of the computingdevice can be determined based on a computing device being paired with alarge display system (e.g., a television), which may indicate that auser of the device is watching television. In another example, a stateof the computing device can be determined based on an indication ofmotion of the device, which may be determined based on informationreceived from the accelerometer 122. In some implementations, the use ofthe application 114 can be correlated with motion of the computingdevice that is determined to indicate driving in a car or that indicatesa user of the device is walking.

Other signals that can be correlated with the user of an application 114can include Wi-Fi signal strength (an indicator of how far the computingdevice is from certain base stations, in order to identify differentindoor locations such as a kitchen vs. a living room vs. a bedroom),cellular signal strength (which may be used to determine the location ofthe computing device or whether the computing device is inside abuilding or outside of a building), ambient light level, ambient soundlevel, whether the phone has any active universal serial bus (USB)connections (which may indicate that the computing device is charging),which applications are running on the device, which applications arefront-facing, the manner in which an application was launched and/oraccessed (e.g., from the lock screen or from an application menu or userinterface), etc.

Based on the monitored use of different applications 114 and thecorrelation of the use with one or more signals available to thecomputing device 102, a user model 134 can be generated. The user modelmay include, or be based on, a history launches and uses of applications(e.g., including when the applications were front facing, when theapplications were opened, and when the applications were fully closed),along with the one or more signals that are available to the computingdevice and that may be correlated with application use.

A context engine 136 may determine different contexts based on the usermodel 134. Contexts may also be associated with the application runhistory of the user (e.g., a history of applications accessed by theuser) in addition to the other records. The context(s) and the timesand/or locations when the computing device transitions to differentcontext(s) may be also be recorded by the context engine. Although a“context,” as used by the computing device, includes particular datathat can be used to provide a context-aware ranking of applicationsavailable for execution on the computing device, a context can be mappedto real-world situations that make sense to a user. For example,contexts can be mapped to “Home,” “Work,” “Vehicle,” situations in whichthe user utilizes of the computing device.

In some implementations, the context engine 136 can use a machinelearning approach to determine one or more contexts based on the usermodel and the monitored use of the applications in relation to thevarious signals with which the use of the applications is correlated.For example, if use of a group of applications A, B, C is highlycorrelated with signals 1, 2, 3 but not with signals 4, 5, 6, and agroup of applications D, E, F, is highly correlated with signals 4, 5, 6but not with signals 1, 2, 3, then the context engine 136 may determinethat the computing device 102 is in a first context when all, or atleast one of, signals 1, 2, 3 are present, and that the computing device102 is in a second context when all, or at least one of, signals 4, 5, 6are present.

In some implementations, the context engine 136 can determine differentcontexts based on particular signals. For example, the context engine136 can determine different contexts based on times of the day orlocations. Thus, different contexts can be determined based on the usageof different applications at different times of the day or differentcontexts can be determined based on the usage of different applicationswhen the computing device is at different locations. Some of the signalsmay be predetermined to be reliable indicators of a relevant context inwhich a user is likely to use the computing device.

In some implementations, the context engine 136 can receive input from auser of the computing device 102 regarding the granularity with whichdifferent contexts should be determined. For example, the user mayindicate to the context engine 136 that only two different contextsshould be determined, that up to a predetermined number (e.g., five) ofdifferent contexts should be determined, or that different contextsshould not be determined at all. Thus, a user who values the use ofdifferent contexts may specify that more contexts should be determinedthan a user who does not value the use of different contexts or whofinds them confusing.

In some implementations, a user of the computing device can provideinput to the context engine 136 to assist the context engine indetermining one or more contexts. For example, the user may provideinput to the computing device (e.g., through a voice command, throughtext input, or through input to a graphical user interface on thedisplay 118) to indicate that the computing device 102 should use aparticular context. Then, the context engine 136 may examine the signalsthat are present when the user provides such input and then can use thepresent signals to determine the particular context.

The context(s) determined by the context engine 136 may not be mutuallyexclusive. For example, different contexts may be combined together ormay be arranged and/or combined in a hierarchical or overlappingfashion.

An application ranking engine 138 may perform a context-dependentranking of applications 114 that exist for use on the computing device.For example, for each application 114 on the computing device 102, theapplication ranking engine 138 may determine a probability that the userwill access the application in the current context of the user/computingdevice. For example, when the context engine 136 has determined that aparticular context is indicated by use of the computing device 102 whenthe computing device is in a moving vehicle, then, for each applicationon the computing device, the application ranking engine 138 maydetermine a probability that the user will access an application whilethe user is in a moving vehicle. Based on these probabilities, theapplication ranking system may identify a set of applications that theuser is likely to access or use within this context and/or an orderedlist of applications that the user is likely to access (e.g., theapplications that have higher probabilities of being accessed given thedevice's current state or context would appear higher in the orderedlist).

In one embodiment, the application ranking engine 138 may use a naïveBayes formula when determining the probability that an application willbe accessed (e.g., initiated and/or resumed) by the user in the currentcontext. For example, as illustrated in the pseudo-code of TABLE 1below, the probability that an application may be accessed by a user maybe determined by calculating a Bayesian score for each application giventhe current context.

Bayesian Score

-   -   We are trying to get P(App|Context)    -   Where a Context includes signals (e.g., day, time, cellid, wifi,        headphones connected, motion of device, etc.)

${P\left( {{App}❘{Context}} \right)} = \frac{{P\left( {{Context}❘{App}} \right)} \cdot {P({App})}}{P({Context})}$

-   -   Which is made up of:

P(Context❘App) = P(⟨signals⟩)P(Context❘App) = P(signal_1❘app) ⋅ P(signal_2❘app) ⋅ P(signal_3❘app) ⋅ P(signal_4❘app)${P\left( {{signal}_{i}❘{app}} \right)} = \frac{v\left( {{signal}_{i}❘{app}} \right)}{v({app})}$${P({app})} = \frac{v({app})}{v\left( {{any}\mspace{14mu}{app}} \right)}$

Table 1

Although the disclosure may refer to the Bayes formula, it should beunderstood that the application ranking engine 138 may use otherapproaches to calculate the probability that an application will beaccessed by the user in the current context. In implementations, theequations, operations, and/or functions to calculate the probability maybe performed by one or more a server computers 160, 161 or some othercomputing device separate from the user's computing device 102. Althougha single server computer may be referenced herein, it is understood thata plurality of server computers can perform the functions of the singlereferenced server computer Thus, the application ranking engine 138 maybe located on the server computer 160, or the functionality of theapplication ranking engine 138 may be split between the computing device102 and the server computer 160. This may allow time-consuming,expensive, and/or complex calculations to be performed remotely from theuser's computing device 102 (e.g., smartphone). Similarly, the contextengine 136, and the functionality that it performs to determinedifferent contexts, can exist on a remote server computer 160 or can besplit between the computing device 102 and a remote server computer 160.

In some implementations, the server computer 160 may receive anonymizeddata representing user models 162 from a plurality of differentcomputing devices 102, 104, etc. that are associated with differentusers. A context engine 164 on the server computer 160 can generatedifferent generalized contexts based on the plurality of different usermodels 162, and an application ranking engine 166 on the server computer160 may generate generalized probabilities that one or more applications114 would be accessed or used when the computing device 102, 104 is inone of the determined contexts. Such generalized contexts andprobabilities of application usage within a context may have the benefitof being determined based on more user data but may lack a desiredspecificity for application that a particular user may seek.

An individual computing device 102 may receive the data generated by theserver computer 160 (e.g., data identifying different generalizedcontexts and rankings based on user models for a plurality of users) andmay incorporate the data into its own application ranking system. In oneimplementation, the application ranking engine 138 may use a naïve Bayesformula in addition to other components, combining them according to aweighting system that may indicate different weights for the output ofthe naïve Bayes formula and/or other components.

The context-based rankings output by the application ranking engine 138can be used to determine one or more icons representing the applications114 for display on a page of a user interface presented on display 118.For example, on a smart phone that has limited area for displaying iconsrepresenting applications 114, a limited number of application icons canbe displayed on a page of the display. Selection of the applicationicons for display on the page of the display can be based oncontext-dependent rankings. In some implementations, the applicationicons that are presented on a display page when the computing device 102is in a particular context can be organized in a hierarchical mannerdepending on the ranking of the applications. For example, highestranked applications can have their icons displayed at the top of thedisplay page, and other icons can be displayed on the page in descendingorder of their ranking. As the ranking for an application changes overtime (e.g., because a user invokes the application more or less duringthe context than previously), the ranking of the application within thecontext can change, which may affect the placement of the applicationicon within the hierarchical organization on the display page. In someimplementations, even though the rankings of applications may changeover time, applications for the top N ranked applications within thecontext can be displayed in the same positions on the display page. Forexample, if six application icons are displayed on the display page,icons for the six most highly ranked applications can be displayed onthe display page in order that does not change, even if the relativeranking of the six most highly ranked applications changes.

In some implementations, after the application ranking engine 138identifies a set and/or an ordered list of applications sorted by theirdetermine context-dependent rankings, the application ranking engine mayapply a weight and/or increase the ranking (e.g., add a boost)calculated for an application 114 based on whether the user has manuallylaunched or accessed (e.g., via a user interface presented on thedisplay 118 of the computing device 102) the application identified bythe application ranking engine. For example, if the application rankingengine 138 determines that there is a high probability that the user mayuse a map application while in a vehicle (e.g., while the device 102 isdetermined to be in the “vehicle” context), and then the user manuallylaunches or accesses the map application when its icon is presented onthe display page, the application ranking engine 138 may add to theprobability that the user will access the map application. This mayprovide a boost to the ranking of the map application which may causethe map application to be presented in the UI more often when the useris in a vehicle.

Similarly, the application ranking engine may also apply a weight and/ordecrease the ranking calculated for an application if the applicationwas presented to the user via the UI and the user did not manuallylaunch or access the application via the application user interface(e.g., an application menu). For example, the application ranking enginemay determine that there is a high probability that the user will accessa messaging application when the user is at work (e.g., in the “work”context) and may present the messaging application to the user in theUI. However, if the user does not select the messaging application, theapplication ranking engine may decrease the ranking for the messagingapplication within the “work” context. This may cause the messagingapplication to be presented in the UI less often when the user is atwork.

Because the application management engine 132 may track whether the useris accessing applications that have been identified as having highprobabilities of being accessed (e.g., having high rankings, asdetermined by the application ranking engine 138), the applicationranking engine 138 can adapt to changes in a user's preference ofapplications. For example, a computing device 102 may have multiple mapapplications. If the user starts using a different map application morefrequently (than a first map application) while in a vehicle (e.g., whenthe computing devices determined to be in a “vehicle” context), theapplication ranking engine 138 may rank the different map applicationhigher than the first application and may present the differentapplication to the user instead of the first map application. In anotherexample, if the user initially does not use a streaming musicapplication while in a vehicle, but later starts to use the streamingmusic application while in a vehicle, this may cause the applicationranking engine to rank the streaming music application higher andhigher.

In some implementations, some or all of the functionality of theapplication management engine 132, the user models 134, the contextengine 136, and the application ranking engine 138 can be providedwithin the operating system 112. In some implementations, some or all ofthe functionality of the application management engine 132, the usermodels 134, the context engine 136, and the application ranking engine138 can be provided within an application 114 that is installed on thecomputing device 102.

In some implementations, the application ranking engine 138, in additionto ranking applications 114 that have been previously executed on thecomputing device, also can rank applications 168 that are available forinstallation and execution on the computing device 102 but that have notbeen already executed on the computing device. For example, applications168 may exist in a database maintained by server 160, and user models162 for other users may provide an indication of one or more contexts anapplication 168 is likely to be used in. An application 168 can beassigned a ranking by a global application ranking engine 166 toindicate the probability of the application 168 being used in one ormore particular contexts by a generalized user. Then, the applicationranking engine 138, in coordination with the global application rankingengine 166, may assign a context-based ranking to the application 168that has not been previously executed on the computing device 102. Ifthe ranking is high enough, the application 168 can be recommended to auser, for example, through a user interface 140 that is presented ondisplay 118 of computing device 102. In this manner, applications 168 ofwhich a user of computing device 102 may be unaware can be recommendedto the user at appropriate times or in appropriate contexts.

For example, a user may live and work in San Francisco, but when theuser travels to Munich, Germany in late September or early October,applications 168 that provide information about the annual OktoberfestFestival in Munich, Germany, that provide information about the Munichmass transit system, that provide information about restaurants andtourist attractions in Munich, etc. may be recommended to the user whenthe user's plane lands in Munich. In addition, when the user lands inMunich and the computing device 102 connects to wifi and cell tower basestations located in the Munich that the application has never seen, thecontext engine 136 may use this information to determine a new contextfor the user. Based on the existence of the “Munich” context, a requestmay be sent to server 160 for recommendations of application that wouldbe useful to a first-time visitor to Munich. When the global applicationranking engine 166 on the server 160 checks in its database for appsthat are used by other devices frequently connected to Munich wifi andcell tower signals, it can find and recommend application such as localtransit and restaurant apps that are actually used by other people inMunich.

In one implementation, applications may be identified that the user islikely access using different criteria when the application rankingengine does not have a sufficient history of application accesses. Forexample, when one or more modules, engines, applications, etc. thatprovide context-based ranking of applications and display context-baseduser interfaces to application icons is first installed on the computingdevice, a history of application accesses and/or the signals with whichthe application accesses are correlated may not exist. In this case, theapplication ranking engine may identify applications to present to theuser on the UI (e.g., on the “lock screen” or the “home screen”) byanalyzing the organization of the applications on the computing device'shome screens. For example, applications that are on a main or homescreen may be the most frequently used applications. If the user hascreated shortcuts to certain applications, these applications may beidentified and presented to the user on the UI. The application rankingengine may also identify applications that are located in the “dock” ofthe computing device (e.g., applications that are located in a main menubar and that are always presented to the user regardless of which homescreen the user is viewing). In one implementation, the applicationranking engine 138 may identify a default set of applications fordifferent contexts and may present application icons for the default setof applications on the UI. For example, the application ranking enginemay determine that in the “work context” the top applications to presentmay be a calendar application, a file sharing application, an emailapplication, etc. This information may be received from the server 160(via the communication network 150) and/or may be stored locally in amemory or data store 110.

As discussed above, applications 114 that are identified by theapplication ranking engine 138 as being especially relevant in aparticular context (e.g., the applications that have been ranked withhigh probabilities of being accessed when the computing device 102 isdetermined to be in the particular context) may be presented to the useron the lock screen of the computing device (as illustrated in FIG. 2A,FIG. 2B, and FIG. 2C). In another implementation, the applications maybe presented to the user in a list format. In a further implementation,the applications may be presented to the user on an accessory device(e.g., a watch, glasses, or some other wearable computing device) 170that is communicatively coupled to the computing device 102 that may beused to interact with the computing device 102.

Some applications 114 that are identified by the application rankingengine 138 as being especially relevant in a particular context and thatare presented to a user on the user interface 140 on the display 118 ofthe computing device 102 are applications that can provide notificationsof incoming communications received within the application. For example,an email application can provide a notification of a certain number ofnew, unread email messages. The text messaging application can provide anotification of a certain number of new, unread text messages. Atelephone application can provide a notification of a certain number ofnew, unreviewed voicemail messages. And blog and social networkapplications can provide notifications of a number of new, unreviewedmessages. The notification of a number of new messages associated withthe application can be displayed within the user interface 140 inassociation with the application icon for the application. For example,when three unread email messages exist, the number “3” can be displayedin close association with the application icon for the emailapplication.

In some implementations, the number of new messages, communications,events, etc. associated with an application that is displayed in theuser interface can be throttled depending on the context of thecomputing device 102. For example, an application 114 can communicatewith the context engine 136 to determine the existing context of thecomputing device 102, and, based on the context, the application candetermine a context-dependent threshold level for the importance ofmessages, communications, events, etc. that are provided within theapplication. For example, if the user model 134 indicates that a user isvery likely to respond to a notification provided by first application(e.g., a professional social network application) while the computingdevice 102 is in a “work” context, but is relatively unlikely to respondto a notification provided by a second application (e.g., a socialnetwork blogging application) while the computing device 102 is in the“work” context, then the threshold for notifications in the professionalsocial network application can be adjusted to a low value while thethreshold for notifications in the social network blogging applicationcan be adjusted to a high value while the devices in the “work” context.Then, based on the context-dependent thresholds, relatively morenotifications may be provided in the first application relatively fewnotifications may be provided in the second application while thecomputing device 102 is in the “work” context.

A contact database 142 may maintain information about people who arerelevant to the user of the computing device, along with contact, andother identifying, information for the people. In some implementations,the user model 134 can model not only the user's context-dependentinteractions with different applications 114 but also the user'scontext-dependent interactions with different people in the contactdatabase 142. Similarly, the context engine 136 may determine differentcontexts based not only on the user's context-dependent interactionswith different applications 114 but also the user's context-dependentinteractions with different people in the contact database 142. Theapplication ranking engine 138 may also rank the relevance of differentcontexts in the contact database based on the context of the computingdevice 102. When a contact with a high relevance in a particular contextsends a message to a user of the computing device 102 through aparticular application 114, the message from the contact, or at least aportion of the message, may be displayed in association with theapplication in the user interface 140 that is presented in the display118. Then, the user may select the message from the user interface 140for playback or to respond to the message from the contact.

In another implementation, an icon for a contact that is highly rankedin a particular context can be displayed in the user interface 140 thatis presented on the display 118. In some implementations, the icon forthe contact can be selected to access or invoke one or more applications114 that may be used to indicate with the contact. In anotherimplementation, icons for one or more applications that may be used tocommunicate with the contact can be displayed in association with theicon for the contact, without needing to select the icon. In somepatients, suggested messages that may be sent to the contact may bedetermined based on previous communications of the contact that arestored in the user model 134, and the suggested messages may bedisplayed in association with the applications in the user interface140.

FIGS. 2A, 2B, and 2C are diagrams illustrating graphical user interfaces(UIs) in which application icons are displayed on a device and thedisplayed icons are selected based on the context of the device. Asillustrated in FIGS. 2A, 2B, and 2C, the UIs display different iconsassociated with different applications for different c other ontexts.Examples of factors that may be considered when determining a contextmay include, but are not limited a time (e.g., 5:00 PM), a date (e.g.,Sunday, Sep. 1, 2013), a location of the computing device, an activityof the user, sensor data received from various sensors that may bepresent in the computing device (e.g., temperature, humidity,acceleration of the computing device, orientation of the computingdevice, etc.).

FIG. 2A is a schematic diagram of a computing device 202 that isdisplaying a graphical user interface 204 that indicates the computingdevices in a first context, which corresponds to use of the computingdevice at home. The computing device 202 can be equivalent to computingdevice 102. When the computing device 202 is in this first context, thecontext engine 136 may determine that the computing device 202 iscurrently being used at the user's home. Based on this context, theapplication ranking system may identify applications that the user islikely to access using the computing device.

For example, when the user is at home, the application ranking engine138 may determine that the user may be likely to access an emailapplication, a weather application (to check the weather in differentlocations), a blogging application, a streaming video application (towatch streaming videos), a streaming music application (to listen tostreaming music), a camera application (to take pictures and videos),etc. As illustrated in FIG. 2A, the user interface 204 may present abackground image 206 that indicates the “home” context and icons for theemail application 208, the weather application 210, the bloggingapplication 212, the streaming music application 214, the cameraapplication 216, and the video streaming application 218, because theseare applications that the user may often access when the user is athome. This allows the user to more quickly and easily accessapplications that the user is likely to use.

The applications corresponding to application icons 208, 210, 214, 212,216, and 218 may be the most highly ranked applications for the userwithin the home context. The application icons may be organized on theuser interface 204 according to their ranking. For example, the mosthighly ranked application may have its application icon 208 displayed inthe top left portion of the user interface 204, and other applicationicons may be presented in descending order according to their rankingbelow icon 208.

FIG. 2B is a schematic diagram of a computing device 202 that isdisplaying a graphical user interface 224 that indicates the computingdevices in a second context, which corresponds to use of the computingdevice while the user is at work. When the computing device 202 is inthis second context, the context engine 136 may determine that thecomputing device 202 is currently being used while the user is at work.The determination of this “work” context can be based on a variety ofsignals. For example, one signal may include a location of the computingdevice 202 (i.e., that the computing device is located at the user'sworkplace). Another signal may indicate that the computing device beingused at a particular time on a weekday, even if the device is being usedat a location that corresponds to the user's home (e.g., if the usergenerally works from home but is focused on work tasks during particularhours of a weekday).

Based on this context, the application ranking engine may identifyapplications that the user is likely to access using the computingdevice. For example, when the user is at work, the user may be likely toaccess an email application, a calendar application (to check tasks andappointments), a browser application (e.g., to browse websites on theinternet), a file sharing application (e.g., to share different fileswith different people), a phone application (to make and receive phonecalls), an online document management application, etc.

As illustrated in FIG. 2B, the UI 224 may present a background image 225that indicates the “work” context. The UI 224 may present icons for theemail application 226, the calendar application 228, the browserapplication 230, the file sharing application 232, the online documentmanagement application 234, and the phone application 236 because theseare applications that the user may often access when the user is atwork.

FIG. 2C is a schematic diagram of a computing device 202 that isdisplaying a graphical user interface 244 that indicates the computingdevices in a third context, which corresponds to use of the computingdevice while the user is driving in a vehicle (e.g., a car). The contextengine 136 may determine that the computing device 202 is being used inthe “driving” context based on a variety of signals, which may include,for example, input from the accelerometer 122 indicating that thecomputing device is in motion at a speed of more than 15 mph, input fromthe Bluetooth interface 130 indicating that the computing device 202 ispaired with a Bluetooth interface on a car, etc. While the computingdevice 202 is used in the “driving” context, the application rankingengine 138 may determine that the user is likely to access a phoneapplication, a map application (to get directions to differentlocations), a traffic application (e.g., to view traffic for differentlocations), one or more streaming music applications, a podcastapplication, etc.

As illustrated in FIG. 2C, the UI 244 may present a background image 246that indicates the “work” context. The UI 244 may present icons for thephone application 248, the map application 250, the traffic application252, a first music streaming application 254, a second music streamingapplication 256, a podcast application 258 etc., because these areapplications that the user may often access when the user is in avehicle or in a car.

FIGS. 3A, 3B, and 3C are schematic diagrams illustrating graphical userinterfaces (UIs) in which icons are displayed on a device in thedisplayed icons are selected based on the context of the device.

FIG. 3A is a schematic diagram of a graphical user interface 304 thatindicates the computing devices in a home context, in whichcontext-dependent application icons 306, 308, 310, 312, 314, 316displayed within the user interface 304. The application icons may beselected for display within the user interface based on having a highranking within the home context. Application icon 314 may correspond toan application that provides an interface to an online marketplace foradditional applications and content (e.g., games, music, videos,productivity applications, etc.) and it allows a user to download andinstall applications and content from the marketplace. And notificationicon 318 may be displayed in association with application icon 314 toindicate existence of pending messages, notifications, or events thatexist within the application that corresponds to icon 314. For example,a “3” and notification icon 318 may indicate that a user has receivedthree new suggestions of applications or content that may be downloadedto the computing device 102 to that displays the user interface 304. Thenumber of notifications provided within the notification icon 318 for aparticular application may depend on the context of the computing device102 that is displaying the user interface 304. For example, thethreshold for providing notifications about events in the onlinemarketplace application that is represented by icon 314 may be low whenthe device is in the “home” context but may be high when the devices inthe work context, so that the user is not bothered by such notificationswhile at work but receives the notifications at a time when he or she ismore likely to respond to the notifications.

FIG. 3B is a schematic diagram of a graphical user interface 324 thatindicates the computing devices in a “Gym” context, where the gymcontext may exist because a user of the computing device 102 tofrequently goes to a gym at a regular time after work and beforereturning home. In the gym context, context-dependent application icons326, 328, 330, 332, and 334 are displayed within the user interface 324.The application icons may be selected for display within the userinterface based on having a high ranking within the Gym context. Inaddition to the application icons, a contact icon 336 representing acontact and contact database 142 can be displayed in the user interface.The contact whose contact icon 336 is displayed can be ranked highly bythe application ranking engine 138 based on a user model that includes ahistory of messages to, or interactions with the contact when thecomputing device 102 is in the gym context, especially at the end of thetime period that corresponds to the gym context.

In association with the user icon 336, icons 338, 340, and 342 can bedisplayed. Icon 338 corresponds to a phone application, and inassociation with the icon 338 a suggested action (i.e., “call415-555-1212 M”) can be displayed. Selecting the icon 338 or selectingthe suggested action can invoke the phone application and/or canautomatically call the phone number listed in the suggested action.Icons 340 and 342 can correspond to a text messaging application. Inassociation with icon 342 a suggested message, “I'm on my way” can bedisplayed. Selecting the icon 342 or the suggested message can invokethe text messaging application to automatically send the suggestedmessage to the contact. Selecting the icon 340 can invoke the textmessaging application to send a text message to the contact and mayprompt the user to enter the content of the message and then to send themessage.

FIG. 3B is a schematic diagram of another graphical user interface 344that indicates the computing devices in a “Gym” context. In addition toapplication icons 326, 328, 332, 334, contact icons 346 and 348representing the first and second contact, respectively from the contactdatabase 142 can be displayed in the user interface. The contacts whosecontact icons 346, 348 are displayed can be ranked highly by theapplication ranking engine 138 based on a user model that includes ahistory of messages to, or interactions with the contacts when thecomputing device 102 is in the gym context, especially at the end of thetime period that corresponds to the gym context. As shown in FIG. 3B,the contact icon 346 can be displayed in association with an icon 347representing a phone application and a message, “Hey can you pick upgroceries?”, which may be a transcription of a voicemail messagereceived six minutes previously from Contact 1 through the phoneapplication. The contact icon 348 can be displayed in association withan icon 349 presenting a text message application and a message, “Justchecked in those changes. Going . . . ”, corresponding to a text messagereceived 15 minutes previously from Contact 2 through the text messagingapplication. Other phone and text messages from other contacts may notbe displayed in the user interface 344 if the ranking of the othercontacts is not high enough for icons representing those contacts to beplaced in the user interface when the computing device 102 to within thegym context.

FIG. 4 is a flow chart illustrating a method of ranking applications.For simplicity of explanation, the method illustrated in FIG. 4 isdepicted and described as a series of acts. However, acts in accordancewith this disclosure can occur in various orders and/or concurrently andwith other acts not presented and described herein. Furthermore, not allillustrated acts may be required to implement the methods in accordancewith the disclosed subject matter. In addition, those skilled in the artwill understand and appreciate that the methods disclosed herein couldalternatively be represented as a series of interrelated states via astate diagram or events. The method may be performed by processing logicthat comprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on a processorto perform hardware simulation), or a combination thereof.

The method of FIG. 4 includes, at block 405 identifying a plurality ofcontexts in which the computing device is used, each context beingassociated with (i) one or more signals and (ii) a plurality ofapplications. At block 410, the method includes detecting at least asubset of the signals during usage of the computing device. At block415, the method includes determining, based on the detected signals,that the computing devices is being used within a first context. Atblock 420, the method includes ranking, based on usage of the computingdevice, the applications associated with the first context. At block425, the method includes displaying, based on the ranking,representations of a first subset of the applications associated withthe first context on a display of the computing device. In otherembodiments, a method can include other operations and features, such asthose described herein with respect to FIGS. 1-3C and 5.

FIG. 5 illustrates a diagrammatic representation of a machine in theexample form of a computing device 500 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. The computing device500 may be a mobile phone, a smart phone, a netbook computer, arackmount server, a router computer, a server computer, a personalcomputer, a mainframe computer, a laptop computer, a tablet computer, adesktop computer etc., within which a set of instructions, for causingthe machine to perform any one or more of the methodologies discussedherein, may be executed. In one implementation, the computing device 500may present an overlay UI to a user (as discussed above). In alternativeimplementations, the machine may be connected (e.g., networked) to othermachines in a LAN, an intranet, an extranet, or the Internet. Themachine may operate in the capacity of a server machine in client-servernetwork environment. The machine may be a personal computer (PC), aset-top box (STB), a server, a network router, switch or bridge, or anymachine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computing device 500 includes a processing device (e.g., aprocessor) 502, a main memory 504 (e.g., read-only memory (ROM), flashmemory, dynamic random access memory (DRAM) such as synchronous DRAM(SDRAM)), a static memory 506 (e.g., flash memory, static random accessmemory (SRAM)) and a data storage device 518, which communicate witheach other via a bus 530.

Processing device 502 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device 502 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets orprocessors implementing a combination of instruction sets. Theprocessing device 502 may also be one or more special-purpose processingdevices such as an application specific integrated circuit (ASIC), afield programmable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. The processing device 502 is configuredto execute instructions 526 (e.g., instructions for an applicationranking system) for performing the operations and steps discussedherein.

The computing device 500 may further include a network interface device508 which may communicate with a network 520. The computing device 500also may include a video display unit 510 (e.g., a liquid crystaldisplay (LCD) or a cathode ray tube (CRT)), an alphanumeric input device512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse) anda signal generation device 516 (e.g., a speaker). In one implementation,the video display unit 510, the alphanumeric input device 512, and thecursor control device 514 may be combined into a single component ordevice (e.g., an LCD touch screen).

The data storage device 518 may include a computer-readable storagemedium 528 on which is stored one or more sets of instructions 526(e.g., instructions for the application ranking system) embodying anyone or more of the methodologies or functions described herein. Theinstructions 526 may also reside, completely or at least partially,within the main memory 504 and/or within the processing device 502during execution thereof by the computing device 500, the main memory504 and the processing device 502 also constituting computer-readablemedia. The instructions may further be transmitted or received over anetwork 520 via the network interface device 508.

While the computer-readable storage medium 528 is shown in an exampleimplementation to be a single medium, the term “computer-readablestorage medium” should be taken to include a single medium or multiplemedia (e.g., a centralized or distributed database and/or associatedcaches and servers) that store the one or more sets of instructions. Theterm “computer-readable storage medium” shall also be taken to includeany medium that is capable of storing, encoding or carrying a set ofinstructions for execution by the machine and that cause the machine toperform any one or more of the methodologies of the present disclosure.The term “computer-readable storage medium” shall accordingly be takento include, but not be limited to, solid-state memories, optical mediaand magnetic media.

In the above description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that implementations of the disclosure maybe practiced without these specific details. In some instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the description.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared and otherwise manipulated. It has provenconvenient at times, principally for reasons of common usage, to referto these signals as bits, values, elements, symbols, characters, terms,numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “identifying,” “determining,” “calculating,” “updating,”“transmitting,” “receiving,” “generating,” “changing,” or the like,refer to the actions and processes of a computer system, or similarelectronic computing device, that manipulates and transforms datarepresented as physical (e.g., electronic) quantities within thecomputer system's registers and memories into other data similarlyrepresented as physical quantities within the computer system memoriesor registers or other such information storage, transmission or displaydevices.

Implementations of the disclosure also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, or it may comprise a generalpurpose computer selectively activated or reconfigured by a computerprogram stored in the computer. Such a computer program may be stored ina non-transitory computer readable storage medium, such as, but notlimited to, any type of disk including floppy disks, optical disks,CD-ROMs and magnetic-optical disks, read-only memories (ROMs), randomaccess memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards,flash memory, or any type of media suitable for storing electronicinstructions.

The words “example” or “exemplary” are used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “example’ or “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects or designs. Rather, use ofthe words “example” or “exemplary” is intended to present concepts in aconcrete fashion. As used in this application, the term “or” is intendedto mean an inclusive “or” rather than an exclusive “or”. That is, unlessspecified otherwise, or clear from context, “X includes A or B” isintended to mean any of the natural inclusive permutations. That is, ifX includes A; X includes B; or X includes both A and B, then “X includesA or B” is satisfied under any of the foregoing instances. In addition,the articles “a” and “an” as used in this application and the appendedclaims should generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Moreover, use of the term “an implementation” or “one embodiment”or “an implementation” or “one implementation” throughout is notintended to mean the same embodiment or implementation unless describedas such. Furthermore, the terms “first,” “second,” “third,” “fourth,”etc. as used herein are meant as labels to distinguish among differentelements and may not necessarily have an ordinal meaning according totheir numerical designation.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present disclosure is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the disclosure as described herein.

The above description sets forth numerous specific details such asexamples of specific systems, components, methods and so forth, in orderto provide a good understanding of several implementations of thepresent disclosure. It will be apparent to one skilled in the art,however, that at least some implementations of the present disclosuremay be practiced without these specific details. In other instances,well-known components or methods are not described in detail or arepresented in simple block diagram format in order to avoid unnecessarilyobscuring the present disclosure. Thus, the specific details set forthabove are merely examples. Particular implementations may vary fromthese example details and still be contemplated to be within the scopeof the present disclosure.

It is to be understood that the above description is intended to beillustrative and not restrictive. Many other implementations will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method comprising: determining, based at leastin part on information about when different applications that exist on amobile computing device and that have been executed by the mobilecomputing device are used on the mobile computing device, a plurality ofcontexts in which the mobile computing device is used, each contextbeing associated with (i) one or more signals indicating how the deviceis used or a state of the device and (ii) a plurality of theapplications that have been used in the context; determining differentcontext-specific rankings of the applications, each context-specificranking of an application being associated with a different context,wherein each context-specific ranking of an application is based on acontext-specific relevance of the application when the mobile computingdevice is being used in the associated context; determining that thecomputing device is being used within a first context; displaying, basedon the determination that the computing device is being used in thefirst context, and based at least in part on the rankings associatedwith the first context, representations of a first subset of theapplications on a display of the mobile computing device; determiningthat the mobile computing device is being used within a second context;and displaying, based on the determination that the computing device isbeing used in the second context, and based at least in part on therankings associated with the second context, representations of a secondsubset of the applications on the display of the mobile computingdevice.
 2. The method of claim 1, wherein the plurality of signalsincludes a determined location of the mobile computing device when it isused.
 3. The method of claim 1, wherein the one or more signals includesa time at which the mobile computing device is used.
 4. The method ofclaim 1, wherein the one or more signals includes an indication ofanother device to which the mobile computing device is functionallyconnected.
 5. The method of claim 1, wherein determining the pluralityof contexts includes correlating usage of applications on the mobilecomputing device with the signals to generate a user model associatedwith a user of the mobile computing device, and wherein the plurality ofcontexts are based at least in part on the user model.
 6. The method ofclaim 1, further comprising: receiving from a user of the mobilecomputing device an input specifying a number of contexts; and whereindetermining the plurality of contexts includes determining a number ofthe contexts and wherein the number of contexts is determined based atleast in part on the input from the user.
 7. The method of claim 1,further comprising: ranking an application that has not been usedpreviously on the mobile computing device, wherein the ranking is basedat least in part on a relevance to a user of the mobile computingdevice, when the mobile computing device is being used within the firstcontext, of the application that has not been used previously on themobile computing device, and wherein the display of the representationsof the first subset of the applications includes a representation of theapplication that has not been used previously.
 8. The method of claim 1,further comprising changing the rankings of the applications based atleast in part on how long the mobile computing device has been usedwithin the first context.
 9. The method of claim 1, wherein the rankingof the applications remains fixed while the mobile computing device isused within the first context.
 10. The method of claim 1, whereindisplaying the representations of the first subset of the applicationsincludes displaying, in association with a representation of one of thedisplayed applications, a notification of a number of new eventsassociated with the application.
 11. The method of claim 10, furthercomprising determining a threshold for new events to be associated withthe application, wherein the determination of the threshold is based atleast in part on the determination that the mobile computing device isbeing used in the first context.
 12. The method of claim 1, furthercomprising: based at least in part on the determination that the mobilecomputing device is being used within the first context, selecting acontact of a user of the mobile computing device for association with adisplayed representation of an application; and displaying arepresentation of the contact in association with the representation ofthe application.
 13. The method of claim 12, further comprising: basedat least in part on the determination that the mobile computing deviceis being used within the first context, pre-populating a suggestedaction for the application whose representation is displayed inassociation with the representation of the contact.
 14. The method ofclaim 1, wherein determining the plurality of contexts is performed bythe execution of software running on the mobile computing device andwherein determining the different context-specific rankings of theapplications is performed by the execution of software running on themobile computing device.
 15. The method of claim 1, wherein theplurality of contexts in which the mobile computing device is usedinclude a home context, a work context, and a driving context.
 16. Amobile computing device comprising: a display; one or more processors;and one or more memories storing instructions that when executed by theone or more processors cause the computing device to: determine, basedat least in part on information about when different applications thatexist on a mobile computing device and that have been executed by themobile computing device are used on the mobile computing device, aplurality of contexts in which the mobile computing device is used, eachcontext being associated with (i) one or more signals indicating how thedevice is used or a state of the device and (ii) a plurality of theapplications that have been used in the context; determine differentcontext-specific rankings of the applications, each context-specificranking of an application being associated with a different context,wherein each context-specific ranking of an application is based on acontext-specific relevance of the application when the mobile computingdevice is being used in the associated context; determine that thecomputing device is being used within a first context; display on thedisplay, based on the determination that the computing device is beingused in the first context, and based at least in part on the rankingsassociated with the first context, representations of a first subset ofthe applications on a display of the mobile computing device; determinethat the mobile computing device is being used within a second context;and display on the display, based on the determination that thecomputing device is being used in the second context, and based at leastin part on the rankings associated with the second context,representations of a second subset of the applications on the display ofthe mobile computing device.
 17. The computing device of claim 16,wherein the plurality of signals includes a determined location of themobile computing device when it is used.
 18. The computing device ofclaim 16, wherein the one or more signals includes a time at which themobile computing device is used.
 19. The computing device of claim 16,wherein the one or more signals includes an indication of another deviceto which the mobile computing device is functionally connected.
 20. Thecomputing device of claim 16, wherein determining the plurality ofcontexts includes correlating usage of applications on the mobilecomputing device with the signals to generate a user model associatedwith a user of the mobile computing device, and wherein the plurality ofcontexts are based at least in part on the user model.
 21. The computingdevice of claim 16, wherein the instructions, when executed by the oneor more processors, further cause the computing device to change therankings of the applications based at least in part on how long themobile computing device has been used within the first context.
 22. Thecomputing device of claim 16, wherein displaying the representations ofthe first subset of the applications includes displaying, in associationwith a representation of one of the displayed applications, anotification of a number of new events associated with the application.23. The computing device of claim 22, wherein the instructions, whenexecuted by the one or more processors, further cause the computingdevice to determine a threshold for new events to be associated with theapplication, wherein the determination of the threshold is based atleast in part on the determination that the mobile computing device isbeing used in the first context.
 24. The computing device of claim 16,wherein the plurality of contexts in which the mobile computing deviceis used include a home context, a work context, and a driving context.25. A non-transitory computer-readable storage medium includinginstructions for managing a display of applications on a mobilecomputing device and that, when executed, cause a system to: determine,based at least in part on information about when different applicationsthat exist on the mobile computing device and that have been executed bythe mobile computing device are used on the mobile computing device, aplurality of contexts in which the mobile computing device is used, eachcontext being associated with (i) one or more signals indicating how thedevice is used or a state of the device and (ii) a plurality of theapplications that have been used in the context; determine differentcontext-specific rankings of the applications, each context-specificranking of an application being associated with a different context,wherein each context-specific ranking of an application is based on acontext-specific relevance of the application when the mobile computingdevice is being used in the associated context; determine that thecomputing device is being used within a first context; display, based onthe determination that the computing device is being used in the firstcontext, and based at least in part on the rankings associated with thefirst context, representations of a first subset of the applications ona display of the mobile computing device; determine that the mobilecomputing device is being used within a second context; and display,based on the determination that the computing device is being used inthe second context, and based at least in part on the rankingsassociated with the second context, representations of a second subsetof the applications on the display of the mobile computing device. 26.The non-transitory computer-readable storage medium of claim 25, whereinthe plurality of signals includes a determined location of the mobilecomputing device when it is used.
 27. The non-transitorycomputer-readable storage medium of claim 25, wherein the one or moresignals includes a time at which the mobile computing device is used.28. The non-transitory computer-readable storage medium of claim 25,wherein the one or more signals includes an indication of another deviceto which the mobile computing device is functionally connected.
 29. Thenon-transitory computer-readable storage medium of claim 25, whereindetermining the plurality of contexts includes correlating usage ofapplications on the mobile computing device with the signals to generatea user model associated with a user of the mobile computing device, andwherein the plurality of contexts are based at least in part on the usermodel.
 30. The non-transitory computer-readable storage medium of claim25, wherein the instructions, when executed, further cause the system tochange the rankings of the applications based at least in part on howlong the mobile computing device has been used within the first context.31. The non-transitory computer-readable storage medium of claim 25,wherein the ranking of the applications remains fixed while the mobilecomputing device is used within the first context.
 32. Thenon-transitory computer-readable storage medium of claim 25, whereindisplaying the representations of the first subset of the applicationsincludes displaying, in association with a representation of one of thedisplayed applications, a notification of a number of new eventsassociated with the application.
 33. The non-transitorycomputer-readable storage medium of claim 25, wherein the instructions,when executed, further cause the system to: based at least in part onthe determination that the mobile computing device is being used withinthe first context, select a contact of a user of the mobile computingdevice for association with a displayed representation of anapplication; and display a representation of the contact in associationwith the representation of the application.
 34. The non-transitorycomputer-readable storage medium of claim 25, wherein the plurality ofcontexts in which the mobile computing device is used include a homecontext, a work context, and a driving context.